ClouldWatchアラームでEC2インスタンスのステータスチェックを使用して、自動でリカバリーしてみた。
EC2ステータスアラームとは?
EC2は、インスタンスステータスモニタリングを使用して、インスタンスに影響を与える可能性のある問題を検出します。ハードウェアとソフトウェアの問題を見つけるために、EC2はすべてのインスタンスで毎分自動的にチェックを実行します。
- ステータスチェック:OK - すべてのチェックに成功すると、ステータスがOKになります。
- ステータスチェック : impaired - 1つ以上のチェックが失敗すると、ステータスがimpairedになります。
EC2 インスタンスをモニタリングするために、Amazon CloudWatch アラームを作成して、自動的にimpairedインスタンスを復旧します。ステータスチェックは2つのタイプがあります。
- システムステータスチェック
- インスタンスステータスチェック
システムステータスチェック
インスタンスが実行されているAWSシステムは、システムステータスチェックによってモニタリングされます。システムステータスチェックは、フィジカルホスト上のソフトウェアとハードウェアの問題をモニタリングします。
ホストの問題の例
- 物理ホストのソフトウェアの問題
- ネットワーク接続の喪失
- システム電源の喪失
- ネットワーク到達可能性に影響する、物理ホスト上のハードウェアの問題
問題を解決する方法
システムステータスチェックは失敗になった時、問題を解決するには2つの方法があります。
- AWS がホスト問題を解決するまで待ちます。
- EBS でバックアップされたインスタンスの場合は、インスタンスをSTOPとSTARTして、インスタンスを新しいホストに移動します。
CloudWatchメトリクス
システムステータスチェックのCloudWatchメトリクス : StatusCheckFailed_System
インスタンスステータスチェック
インスタンスステータスチェックは、各インスタンスのソフトウェア/ネットワーク設定をモニタリングします。インスタンスステータスチェックが失敗になった時、自分で 問題に対処する必要があります。
問題の例
- メモリの枯渇
- 破損したファイルシステム
- 失敗したシステムステータスチェック
- 正しくないネットワークまたは起動設定
問題を解決する方法
- インスタンスを再起動します。
- インスタンス設定を変更します。
CloudWatchメトリクス
インスタンスステータスチェックのCloudWatchメトリクス : StatusCheckFailed_Instance
やってみた
ステータスチェックの表示
- EC2インスタンスを作成しておきます。
- インスタンスを選択して、「Status checks」のタブを選択したら、特定のインスタンスのステータスを見ることが出来ます。
開始時はアラームは作されていませんので、アラームステータスは「No alarms」です。これは、Consoleからのステータスチェックです。
- CLIコマンドによるステータスチェック
aws ec2 describe-instance-status --instance-ids [Id of the instance] --region us-east-1
CloudWatchアラームの作成
- Status checksのタブで、「Create status check alarm」を選択しておきます。
- 「Create an alarm」を選択して 、「Alarm action」には「Reboot- インスタンスステータスチェックのために」を選択します。
- 「Type of data」は「Status check failed: Instance」を選択して、アラームを作成しておきます。
アラームを設定して確認する
- CLIからアラームを設定しておきます。このコマンドはアラームを作成します。
aws cloudwatch set-alarm-state --alarm-name awsec2-i-12345678dfghguh-GreaterThanOrEqualToThreshold-StatusCheckFailed_Instance --state-value ALARM --state-reason "instance reboot action testing" --region us-east-1
- このコマンドを実行すると、CloudWatchアラームがトリガーされて、インスタンスが自動的に「Reboot」されます。
- アラームステータスのインスタンス
- CloudWatchアラームの状態は「In alarm」になります。
- 自動的な「Reboot」の後、インスタンスは「OK」ステータスになります。
- アラームの状態も「OK」になります。ステータス変更のイベントは、CloudWatchアラームの履歴 で見ることができます。
まとめ
CloudWatchを介してEC2インスタンスのステータスをモニタリングしてみました。また、「Recover - システムステータスチェック」を使用して自動でリカバリーをすることも可能です。